<?php
//    +----------------------------------------------------------------------
//    | Copyright (c) 2015-2035 http://www.hdphp.cn All rights reserved.
//    | Licensed ( http://www.hdphp.cn/licenses/ )
//    | Author: Jack <sophia2152@qq.com>
//    | 官方网址: http://www.hdphp.cn
//    | 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用。
//    | 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
//    +----------------------------------------------------------------------
namespace app\http\middleware\admin;

use app\Request;
use hdphp\interfaces\MiddlewareInterface;
use app\services\system\log\SystemLogServices;

/**
 * Class：日志中間件
 * 创建人：Jack
 * 创建时间：2023/3/24 16:35
 * @package app\http\middleware\admin
 */
class AdminLogMiddleware implements MiddlewareInterface
{
    public function handle(Request $request, \Closure $next)
    {
        $rule = trim(strtolower($request->rule()->getRule()));
        $page = $request->rule()->getOption('real_name');
        $action = $request->action();
        $method = $request->method();
        $data = $request->request();
        if ($action == 'index' || $action == 'keep_alive') return $next($request);
        /** @var SystemLogServices $services */
        $services = app()->make(SystemLogServices::class);
        $services->recordAdminLog($request->uid(), $request->userInfo()['true_name'], $method, $rule, $action, $page, $request->ip(), $data);

        return $next($request);
    }
}